package com.losrebellos.utils.collection{	import com.losrebellos.math.MathUtils;	import flash.errors.IllegalOperationError;	/*	 *	 * @author los rebellos - ben@benoitvinay.com	 *	 */	public final class ArrayUtils	{		////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		// MERGE
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////		public static function merge(tab1:Array, tab2:Array):Array		{			return tab1.concat(tab2);		}						////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		// CLEAN
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////		public static function clean(tab:Array):Array		{			var result:Array = [];			for(var i:Number = 0; i < tab.length; i++)			{				if(tab[i] != null && tab[i] != "")				{					result.push(tab[i]);				}			}			return result;		}						////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		// GET A RANDOM ELEMENT IN AN ARRAY
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////		public static function getRandomInArray(tab:Array):*		{			return tab[MathUtils.randomInteger(0, tab.length - 1)];		}						////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		// COMPARE 2 ARRAY
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////		public static function compare(tab1:Array, tab2:Array):Boolean		{			if(tab1.length != tab2.length)			{				return false;			}			for(var i:int = 0; i < tab1.length; i++)			{				if(tab1[i] != tab2[i])				{					return false;				}			}			return true;		}						////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		// SWAP 2 ELEMENTS
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////		public static function swap(tab:Array, i:int, j:int):void		{			var val:* = tab[i];			tab[i] = tab[j];			tab[j] = val;		}						////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		// REMOVE AN ELEMENT OF AN ARRAY
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////		public static function remove(tab:Array, index:int):Array		{			throw new IllegalOperationError("ArrayUtils.remove need to be removed");						return merge(tab.concat().splice(0, index), tab.concat().splice(index + 1, tab.length - 1));		}	}}